package advanced.design_mode.strategymode;

/**
 * 用来管理这些策略
 * <p>
 * 负责和具体的策略类交互
 * 让具体的算法和直接的客户端调用分离, 是的算法可以独立于客户端的变化
 * <p>
 * 还可以通过配置未见,动态的注入不同的策略对象
 */
public class Context {
    private Strategy strategy;//当前采用的算法对象, 多态的

    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    public void setStrategy(Strategy strategy) {
        this.strategy = strategy;
    }

    public void printPrice(double price) {
        System.out.println("您的报价是" + strategy.getPrice(price));
    }
}
